#分析Apache日志，统计每个IP访问服务器的次数
#!/bin/bash
#日志文件格式如下：
#201.28.117.13 - - [08/Apr/2024:11:45:16 +0800] "GET / HTTP/1.1" 200 615 "-" "curl/7.61.1"

awk '{ip[$1]++}END{for(i in ip){print ip[i],i }}' /var/log/httpd/access_log 

#分析Nginx日志，统计每个IP访问服务器的次数
#假设nginx日志在/usr/local/nginx/logs/access.log
#!/bin/bash
awk '{ip[$1]++}END{for(i in ip){print ip[i],i }}' /usr/local/nginx/logs/access.log

#网络连接分析，统计当前系统tcp和udp连接个数(使用ss可以查看网络连接状态）
#1:不使用awk数组的版本
#!/bin/bash
# 获取TCP连接数  
tcp_count=$(ss -an | grep ^tcp | wc -l)  
# 获取UDP连接数  
udp_count=$(ss -an | grep ^udp | wc -l)  
# 输出结果  
echo "TCP 连接数: $tcp_count"  
echo "UDP 连接数: $udp_count"

#2：使用awk数组的版本
#!/bin/bash
# 获取TCP连接数  
tcp_count=$(ss -an | awk '/^tcp/{ip[$1]++}END{for(i in ip){print ip[i]}}')  
# 获取UDP连接数  
udp_count=$(ss -an | awk '/^udp/{ip[$1]++}END{for(i in ip){print ip[i]}}')  
# 输出结果  
echo "TCP 连接数: $tcp_count"  
echo "UDP 连接数: $udp_count"

